// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/kpdus/jad.html
// Decompiler options: braces fieldsfirst space lnc
package com.google.zxing.oned.rss;
public final class RSSUtils
{
private RSSUtils()
{
}
private static int a(int i, int j)
{
_L2:
int k1;
for (; k <= j; k++)
{
k1 /= k;
}
return k1;
int k = 1;
int i1;
int j1;
if (i - j > j)
{
i1 = i - j;
} else
{
int l = i - j;
i1 = j;
j = l;
}
j1 = k;
for (; i > i1; i--)
{
j1 *= i;
if (k <= j)
{
j1 /= k;
k++;
}
}
k1 = j1;
if (true) goto _L2; else goto _L1
_L1:
}
static int[] a(int i, int j, int k, int l, boolean flag)
{
int ai[];
int i1;
int j1;
int k1;
ai = new int[k];
i1 = 0;
j1 = 0;
k1 = i;
_L9:
if (j1 >= k - 1) goto _L2; else goto _L1
_L1:
int l1;
i1 |= 1 << j1;
l1 = 1;
_L7:
int i2;
i2 = a(-1 + (j - l1), -2 + (k - j1));
if (flag && i1 == 0 && j - l1 - (-1 + (k - j1)) >= -1 + (k - j1))
{
i2 -= a(j - l1 - (k - j1), -2 + (k - j1));
}
if (-1 + (k - j1) <= 1) goto _L4; else goto _L3
_L3:
int j2 = 0;
for (int k2 = j - l1 - (-2 + (k - j1)); k2 > l; k2--)
{
j2 += a(-1 + (j - l1 - k2), -3 + (k - j1));
}
i2 -= j2 * (k - 1 - j1);
_L6:
k1 -= i2;
if (k1 >= 0)
{
break; /* Loop/switch isn't completed */
}
k1 += i2;
j -= l1;
ai[j1] = l1;
j1++;
continue; /* Loop/switch isn't completed */
_L4:
if (j - l1 > l)
{
i2--;
}
if (true) goto _L6; else goto _L5
_L5:
l1++;
i1 &= -1 ^ 1 << j1;
if (true) goto _L7; else goto _L2
_L2:
ai[j1] = j;
return ai;
if (true) goto _L9; else goto _L8
_L8:
}
static int[] a(int ai[], int i, int j)
{
int ai1[] = new int[2 + ai.length];
int k = j << 1;
ai1[0] = 1;
int l = 10;
int i1 = 1;
for (int j1 = 1; j1 < k - 2; j1 += 2)
{
ai1[j1] = ai[j1 - 1] - ai1[j1 - 1];
ai1[j1 + 1] = ai[j1] - ai1[j1];
i1 += ai1[j1] + ai1[j1 + 1];
if (ai1[j1] < l)
{
l = ai1[j1];
}
}
ai1[k - 1] = i - i1;
int k1;
if (ai1[k - 1] < l)
{
k1 = ai1[k - 1];
} else
{
k1 = l;
}
if (k1 > 1)
{
for (int l1 = 0; l1 < k; l1 += 2)
{
ai1[l1] = ai1[l1] + (k1 - 1);
int i2 = l1 + 1;
ai1[i2] = ai1[i2] - (k1 - 1);
}
}
return ai1;
}
public static int getRSSvalue(int ai[], int i, boolean flag)
{
int j = ai.length;
int k = 0;
int l;
int i4;
for (l = 0; k < j; l = i4)
{
i4 = l + ai[k];
k++;
}
int i1 = 0;
int j1 = 0;
int k1 = l;
int l1 = 0;
do
{
if (i1 >= j - 1)
{
break;
}
int i2 = l1 | 1 << i1;
int j2 = j1;
int k2 = i2;
int l2 = 1;
while (l2 < ai[i1])
{
int j3 = a(-1 + (k1 - l2), -2 + (j - i1));
if (flag && k2 == 0 && k1 - l2 - (-1 + (j - i1)) >= -1 + (j - i1))
{
j3 -= a(k1 - l2 - (j - i1), -2 + (j - i1));
}
if (-1 + (j - i1) > 1)
{
int k3 = k1 - l2 - (-2 + (j - i1));
int l3 = 0;
for (; k3 > i; k3--)
{
l3 += a(-1 + (k1 - l2 - k3), -3 + (j - i1));
}
j3 -= l3 * (j - 1 - i1);
} else
if (k1 - l2 > i)
{
j3--;
}
j2 += j3;
l2++;
k2 &= -1 ^ 1 << i1;
}
int i3 = k1 - l2;
i1++;
k1 = i3;
l1 = k2;
j1 = j2;
} while (true);
return j1;
}
}